package start;
import java.time.LocalDate;

public class FourDigitGenerator {

    public static int generateFourDigitNumber(int previousNumber) {
        // 获取当前日期
        LocalDate currentDate = LocalDate.now();
        // 获取当前月份（1 - 12）
        int month = currentDate.getMonthValue();

        // 以月份为基础生成一个基础数字，乘以 1000 确保有足够的空间来添加时间戳部分
        int baseNumber = month * 1000;

        // 获取当前时间戳
        long timestamp = System.currentTimeMillis();
        // 取时间戳的后三位
        int timestampPart = (int) (timestamp % 1000);

        // 组合基础数字和时间戳部分
        int newNumber = baseNumber + timestampPart;

        // 确保新生成的数字比前一个数字大，如果小于等于前一个数字，则不断增加直到大于
        while (newNumber <= previousNumber) {
            newNumber++;
        }

        // 确保结果是四位数
        newNumber = newNumber % 10000;

        return newNumber;
    }

    public static void main(String[] args) {
        int previous = 0;
        for (int i = 0; i < 5; i++) {
            int current = generateFourDigitNumber(previous);
            System.out.println("第 " + (i + 1) + " 次生成的四位数: " + current);
            previous = current;
            try {
                // 为了体现时间戳的变化，这里暂停 1 秒
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}